﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cnm.Models.ViewModels
{
    public class PostDetailsViewModel
    {
        public PostDetailsViewModel()
        {
            PictureViewModels = new List<PictureViewModel>();
            Breadcrumb = new PostBreadcrumbModel();
        }

        public int Id { get; set; }
        public string Name { get; set; }
        public string SeName { get; set; }
        public List<PictureViewModel> PictureViewModels { get; set; }
        public string FullDescription { get; set; }
        public PosterDetailsViewModel Poster { get; set; }
        public DateTime? DateCreated { get; set; }
        public DateTime? DateUpdated { get; set; }
        public string TimeAgo
        {
            get
            {
                if (DateCreated == null)
                    DateCreated = DateTime.Now;

                TimeSpan span = DateTime.Now - (DateTime)DateCreated;
                if (span.Days > 365)
                {
                    int years = (span.Days / 365);
                    if (span.Days % 365 != 0)
                        years += 1;
                    return String.Format("{0} năm trước", years);
                }
                if (span.Days > 30)
                {
                    int months = (span.Days / 30);
                    if (span.Days % 31 != 0)
                        months += 1;
                    return String.Format("{0} tháng trước", months);
                }
                if (span.Days > 0)
                    return String.Format("{0} ngày trước", span.Days);
                if (span.Hours > 0)
                    return span.Minutes > 0
                        ? String.Format("{0} giờ {1} phút trước", span.Hours, span.Minutes)
                        : String.Format("{0} giờ trước", span.Hours);
                if (span.Minutes > 0)
                    return String.Format("{0} phút trước", span.Minutes);
                if (span.Seconds > 5)
                    return String.Format("{0} giây trước", span.Seconds);
                if (span.Seconds <= 5)
                    return "mới đây";
                return string.Empty;
            }
        }

        public double? Price { get; set; }
        public string PaymentMethod { get; set; }
        public string ShippingProcess { get; set; }
        public CategoryViewModel Category { get; set; }
        public RegionViewModel Region { get; set; }
        public string Titular { get; set; }
        public string PostType { get; set; }
        public string ItemStatus { get; set; }

        public PostBreadcrumbModel Breadcrumb { get; set; }
    }
}
